Skip to content

Migrate standalone apps to oakapp-base 1.3.0 - #856

Merged
michalvankodev merged 5 commits into
mainfrom
misc/update-base-image
Aug 20, 2026
Merged

Migrate standalone apps to oakapp-base 1.3.0#856
michalvankodev merged 5 commits into
mainfrom
misc/update-base-image

Conversation

@michalvankodev

@michalvankodev michalvankodev commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Migrate the standalone examples in this change set to the luxonis/oakapp-base 1.3.0 image family.
  • Update all standalone custom frontends to Visualizer package release 3.8.3.
  • Make the custom standalone frontends reproducible in clean, constrained OAK build containers.
  • Correct DINO Tracking's FastSAM parser wiring and P2P Measurement's current React ref typing.

Base-image migration

Updates the affected Python examples to luxonis/oakapp-base:1.3.0, the C++ example to 1.3.0-cpp, and the Python 3.11 frontend examples to 1.3.0-py311. Associated frontend lockfiles are regenerated for the updated package graph.

Visualizer frontend packages

Update the direct @luxonis/depthai-viewer-common and @luxonis/depthai-pipeline-lib dependencies from 3.7.6 to 3.8.3 for every standalone custom frontend:

  • Data Collection
  • DINO Tracking
  • Focused Vision
  • Object Volume Measurement 3D
  • P2P Measurement
  • People Demographics and Sentiment Analysis
  • QR Tiling
  • Open-Vocabulary Object Detection
  • Raw Stream
  • Roboflow Workflow

Frontend build reliability

For Data Collection, DINO Tracking, Focused Vision, Object Volume Measurement 3D, P2P Measurement, People Demographics and Sentiment Analysis, and QR Tiling:

  • add direct @floating-ui/dom@1.8.0, @sentry/browser@8.55.2, and date-fns@2.30.0 dependencies required by transitive Luxonis frontend packages;
  • use npm overrides to keep react and react-dom aligned to the direct React 19 versions, preventing a nested ReactDOM 18/React 19 mismatch;
  • set Rollup maxParallelFileOps: 8 to avoid EMFILE: too many open files in the OAK build container.

P2P Measurement additionally accepts a nullable RefObject in ClickCatcher, fixing its TypeScript build error.

DINO Tracking correction

FastSAM parser output now feeds the mask-selection and outline paths. Its pipeline type is dai.Buffer, while the runtime message remains dai.SegmentationMask; the host node handles that contract explicitly.

Validation

  • Ran npm install && npm run build sequentially for all ten updated frontends with the 3.8.3 package pair; all builds pass.
  • Removed node_modules, dist, and generated styled-system directories after every frontend build; no generated frontend artifacts remain.
  • Deployed current source with oakctl app run . --detach --invalidate to an OAK4-S R1 (RVC4, serial 221646362).
  • Confirmed custom frontend behavior for Data Collection, DINO Tracking, Focused Vision, People Demographics and Sentiment Analysis, QR Tiling, and Open-Vocabulary Object Detection.
  • Confirmed P2P Measurement and Object Volume Measurement 3D build successfully; their runtime paths correctly reject this RGB-only device because CAM_B/CAM_C are absent. A stereo-capable device is required for functional verification.

dev-app-test.md is intentionally excluded from this PR.

Data Collection snap crash fix

Data Collection's snapping host node used the obsolete SnapData(file_name=..., frame=..., detections=...) constructor. With depthai-nodes==0.5.0, triggering a snap raised TypeError: SnapData.__init__() got an unexpected keyword argument 'file_name' inside a DepthAI host-node callback, which aborted the backend and dropped the stream.

The producer now creates a dai.FileGroup, adds the image/detections pair with addImageDetectionsPair(...), and passes it as SnapData(file_group=...). The changed Python module passes python3 -m py_compile.

@michalvankodev
michalvankodev force-pushed the misc/update-base-image branch 2 times, most recently from 596eec4 to 1efe66b Compare August 12, 2026 17:45
@michalvankodev
michalvankodev force-pushed the misc/update-base-image branch from 1efe66b to c9b655f Compare August 12, 2026 17:46
@michalvankodev michalvankodev changed the title Fix standalone custom frontend builds Migrate standalone apps to oakapp-base 1.3.0 Aug 12, 2026
@michalvankodev michalvankodev self-assigned this Aug 12, 2026
@michalvankodev
michalvankodev marked this pull request as ready for review August 12, 2026 17:52
@klemen1999
klemen1999 requested a review from PetrNovota August 13, 2026 07:37
Comment thread apps/conference-demos/rgb-depth-connections/oakapp.toml Outdated
@michalvankodev
michalvankodev marked this pull request as draft August 14, 2026 09:24
@klemen1999 klemen1999 added the testable PR is ready to be tested label Aug 17, 2026
@michalvankodev
michalvankodev marked this pull request as ready for review August 17, 2026 09:28

@klemen1999 klemen1999 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM from my side.

@klemen1999 klemen1999 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should also bump out the app_version of the changed apps since it is a bigger change.

@PetrNovota PetrNovota left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@michalvankodev
michalvankodev merged commit 04fe61b into main Aug 20, 2026
14 of 16 checks passed
@michalvankodev
michalvankodev deleted the misc/update-base-image branch August 20, 2026 13:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

testable PR is ready to be tested

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants